<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>练习JavaScript</title>
</head>
<body>
    <script>
        function Hero(name, sty, hp, dps) { 
            this.name = name;
            this.sty = sty;
            this.hp = hp;
            this.dps = dps;
            this.play = function (num) {
                
                if (num===1){
                    this.hp += 1800;
                    console.log('廉颇大招了, 他跳起来了')
                }else if (num===2){
                    this.dps += 200;
                    console.log('后羿射日!')
                }
                this.hp += 2000;
                this.dps += 100;
            }
        }
        // new关键字执行过程
        // 1.new构造函数可以在内存创建一个空的对象
        // 2.this就会指向刚才创建的空对象
        // 3.执行构造函数里面的代码, 给这个空对象添加属性和方法
        // 4.返回这个对象(所以构造函数里面不需要return)
        // 初始化廉颇
        var lianpo = new Hero('廉颇', '坦克', 8000, 110)
        for (k in lianpo){
            console.log(k)
            console.log(lianpo[k])
        }
        // 调用技能
        lianpo.play(1)
        console.log('血量:' + lianpo.hp)
        console.log('攻击: ' + lianpo.dps)
        // 初始化后羿
        var houyi = new Hero('后羿', '射手', 6000, 180)
        for (k in houyi){
            console.log(k)
            console.log(lianpo[k])
        }
        houyi.play(2)
        // 调用技能
        console.log('血量:' + houyi.hp)
        console.log('攻击: ' + houyi.dps)

        // 我们使用for in 里面的变量 我们喜欢写 k 或者key
    </script>

</body>
</html>
